在職涯初期,剛開始學自動化測試跟各種測試框架的時候
曾經聽過一種對QA工程師職涯的說法是:
「你如果不做自動化,只做手動測試一定會慢慢被淘汰。」
所以那個時候就很害怕自己跟不上時代的潮流,死命地學各種工具跟自動化
學起來之後,就很直覺地把自己手邊的手動測試都慢慢寫成自動化
做著做著就發現,我是把手邊的重複且枯燥的工作交給程式去做,
因為程式不會累,它可以完全照設定的排程工作,它比我更好更耐操XD
更進一步去看,自動化其實就是用寫出來的程式去取代掉我們自己的工作。
如果按照這個邏輯,隨著自動化越先進跟完整,理論上需求被慢慢滿足之後
對QA的需求會越來越少,很快,QA工程師就會完全被程式跟機器人取代。
這個問題我沒有很完美的解答,但我在一本書裡面找到了一個不錯的觀點切入:
這本書是查理蒙格的《窮查理的普通常識》,裡面提到一句有名的諺語是:
「在手裡拿著鐵錘的人眼中,世界就像一根釘子。」
意思是如果只受過一種專業訓練的人,容易傾向用單一的思考方式去看待事情,
很容易忽略了這個複雜世界中存在著很多解決方法的可能性。
而QA工程師需要處理的問題,大多都是「以人為中心」去思考解決方案
而「人」本身就是複雜個體,從使用者場景的定義到設計自動化測試架構
從測試左移的需求設計與測試執行到測試右移的風險評估與監控預防
都需要以人為出發點去思考使用者情境,做出符合開發時程與優先度的決策。
舉個實際例子,QA最常遇到的狀態是「事實往往只是狀態,不等於真相」
許多結果都是各種原因交互影響,造成我們看到的事實並非事件的全貌。
產品遙測資料顯示效能不好是一個狀態,不代表產品的設計真的有問題,
真相可能是某些實際的使用情境沒有考慮到,導致不預期的結果沒有被開發團隊處理。
QA雖然是一個工程師角色,卻常常需要透過溝通與協調來去達成業務目標,
也需要透過多元的思維模型與工程經驗來因應快速變化的需求們。
真實世界實際上會是一連串複雜且持續的決策過程,中間也容易會有意外跟動態調整
或許自動化真的會取代掉部分的QA工作,人工智慧也可能大舉入侵工程領域
但QA工程師身而為「人」的彈性,我覺得才是自動化難以取代的優勢。
當然必須說QA的工作內容也非常依賴團隊與產品的規劃
新創團隊會配置全端工程師,高速開發的過程甚至不會配置QA工程師
或是RD與QA比例懸殊,這都是現實上供給與需求的開發配置。
如果有任何精彩的經驗,歡迎本篇下面留言討論XD
我覺得 QA 工程師,是介於 user 與 RD 間的一個神奇催化劑
十分認同您說的那句~
QA工程師身而為「人」的彈性,我覺得才是自動化難以取代的優勢
QA 工程師還有一個很大的功能就是 “透過自身強大的邏輯與歸納能力,重現問題”
沒有QA的幫助,都不知道 RD 要花多久時間查修呢!?(逃~)
沒錯,重現問題就是QA偵探們的專業技術之一 XD
正因為code不是QA寫的,能夠抽離程式開發邏輯,也比較不會有測試上的盲點,專注在更重要的使用者情境來去做測試~
真的,
XDDDD